//package com.example.ymm.component.mqtt;
//
//import com.alibaba.fastjson.JSONObject;
//import com.example.ymm.modules1.entity.my.sys.iot.IotTag;
//import com.example.ymm.modules1.query.sys.iot.IotTagQueryCriteria;
//import com.example.ymm.modules1.service.sys.iot.IotTagService;
//import com.example.ymm.util.DateKit;
//import com.example.ymm.util.EmailUtil;
//import com.example.ymm.util.RedisUtil;
//import com.example.ymm.util.UtilValidate;
//import lombok.extern.slf4j.Slf4j;
//import org.eclipse.paho.client.mqttv3.IMqttMessageListener;
//import org.eclipse.paho.client.mqttv3.MqttClient;
//import org.eclipse.paho.client.mqttv3.MqttException;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//import javax.annotation.PostConstruct;
//import javax.xml.crypto.Data;
//import java.util.Date;
//import java.util.List;
//
//@Service
//@Slf4j
//public class MqttConsumer {
//
//    @Autowired
//    private MqttClient mqttClient;
//
//    @Autowired
//    IotTagService iotTagService;
//    @Value("${spring.profiles.active}")
//    String PD_MATCH;
//    @Autowired
//    private RedisUtil redisUtil;
//
//    // 要订阅的主题
//    private static final String[] TOPICS = {"app/bgTag/332"};//熄灯事件
//    // 对应的QoS等级
//    private static final int[] QOS = {1, 1};
//
//
//
//    @PostConstruct
//    public void subscribe() throws MqttException {
//        // 订阅主题
////        mqttClient.subscribe(TOPICS, QOS, new IMqttMessageListener[] {
////                new UpMessageListener()
////        });
//        mqttClient.subscribe("app/bgTag/332", 1, new UpMessageListener());
//    }
//
//    // 熄灯事件监听器
//    private class UpMessageListener implements IMqttMessageListener {
//        @Override
//        public void messageArrived(String topic, MqttMessage message)  {
//            try{
//                String content = new String(message.getPayload());
//                log.info("主题: " + topic + ", 内容: " + content);
//                Date date = new Date();
//                String s = DateKit.dateFormat(date, "yyyy-MM-dd-HH-mm-ss");
//                redisUtil.set("close_tag:"+s, content);
//                JSONObject jsonObject = JSONObject.parseObject(content);
//                String tagMac=jsonObject.getString("tagMac");
//                IotTag tag = iotTagService.getMac(tagMac);
//                if(UtilValidate.isNotEmpty(tag)){
//                    //电量
//                    if(jsonObject.containsKey("battery")){
//                        Integer battery = jsonObject.getInteger("battery");
//                        tag.setBattery(battery);
//                        iotTagService.saveOrUpdate(tag);
//                    }
//                    //熄灯
//                    if(jsonObject.containsKey("cmdType")){
//                        String cmdType = jsonObject.getString("cmdType");
//                        if("upload_tag_light_turn_off".equals(cmdType)){
//                            tag.setStatus(0);
//                            iotTagService.saveOrUpdate(tag);
//                        }
//                        if(UtilValidate.isNotEmpty(tag.getShelfMac())){
//                            //查询 对应巷道灯 下所有 标签是否关闭
//                            IotTagQueryCriteria criteria=new IotTagQueryCriteria();
//                            criteria.setTagMac(tagMac);
//                            List<IotTag> iotTags = iotTagService.shelfTags(criteria);
//                            if(UtilValidate.isEmpty(iotTags)){
//                                log.info("--关闭巷道灯："+tag.getShelfMac());
//                                iotTagService.closeTag(tag.getShelfMac());
//                            }
//                        }
//                    }else{
////                    if(UtilValidate.isNotEmpty(tag.getShelfMac())){
////                        log.info("--开启巷道灯："+tag.getShelfMac());
////                        iotTagService.openTag(tag.getShelfMac());
////                    }
//
//
//
//                    }
//
//
//
//                }else{
//                    EmailUtil.sendEmail("1055162826@qq.com","监听关灯 查找不到标签mac:"+tagMac,"环境："+PD_MATCH+";time="+ DateKit.getStringNowTime());
//                }
//            } catch (Exception e) {
//
//                log.error(e.getMessage(),e);
//            }
//
//
//
//        }
//    }
//
//
//
//
//
//}